#ifndef	_REGSZ_EDITOR_H_
#define	_REGSZ_EDITOR_H_

#include <vector>
#include <glibmm/ustring.h>
#include <gtkmm/dialog.h>

namespace Gtk {
	class Entry;
	class TextView;
}

class Regsz_Editor : public Gtk::Dialog
{
public:
	Regsz_Editor(const Glib::ustring & val_name, const Glib::ustring & val_data);
	virtual ~Regsz_Editor();
	Glib::ustring get_result() const;
	bool	is_modify() const;
	
private:
	Regsz_Editor();

	Gtk::Entry	*edit_data_;
	const Glib::ustring origin_data_;
};

typedef std::vector<Glib::ustring> Ustrings;	// use data copy, low performance

class Regmultisz_Editor : public Gtk::Dialog
{
public:
	Regmultisz_Editor(const Glib::ustring & val_name, Ustrings & val_data);
	virtual ~Regmultisz_Editor();
	Ustrings get_result() const;
	bool	is_modified() const;

private:
	Regmultisz_Editor();

	Gtk::TextView	*edit_data_;
	Ustrings & origin_data_;
	Glib::RefPtr<Gtk::TextBuffer> text_buffer_;
};

#endif
